def Lucas():
    print(
"""
###############################################################################################
##############################创建者：杨玉奇（foreign_name:Lucas）################################
##############################邮箱：Lucas127@foxmail.com########################################
##############################联系方式：15236494127##############################################
##############Gitee address: https://gitee.com/yang-xuanxin/hand-of-the-king.git ##############
#                                            
#                                    本代码操作指引用#号开头
#                                  本代码的操作思想用户单引号解释
#                                     多段文字解释用多引号显示
#                                         步骤之间当换行
#                                            
################################################################################################
"""
    )
Lucas()
#思想总纲
'进入操作选项，可以用判断语句，然后引用方法'
def bankos():           #此方法用来显示系统操作索引
    print('**************************************************')
    print('*              中国农业银行账户管理系统               *')
    print('**************************************************')
    print('*                      选项                       * ')
    print('*                     1.开户                      * ')
    print('*                     2.存钱                      * ')
    print('*                     3.取钱                      * ')
    print('*                     4.转账                      * ')
    print('*                     5.查询                      * ')
    print('*                     6.Bye                      * ')
    print('**************************************************')

bank_database_user_dict = {'名称' : '万有引力银行'}
user_dict = {'曹阳' : {'账号' : 123456,'密码' : 123456},'杨玉奇' : {'账号' : 123456,'密码' : 123456}}
bank_dict = {'nation' : 'China', 'province' : 'HeNan', 'street' : 'guihua', 'house' : '127'}
money_dict = {'曹阳' : 400,'杨玉奇' : 999999}
user_message_dict = {'曹阳' : {'address' : 'M78','开户行' : 'M78_Bank'}}
#打印一下字典内容
"""
print(bank_database_user_dict)
print(user_dict)
print(bank_dict)
"""
#第一步我要显示银行系统界面
bankos()


def create_user():
    #首先我要定义一个开户的方法
    '''开户时，让用户输入自己的账号，再赋给一个关键字'''
    MyNAME = str(input("请你输入自己的姓名吧："))
    MyUID = int(input("请你输入自己的账号吧："))
    MyCODE = int(input("请你输入自己的密码吧："))

    '设置一个新字典让账号密码传进去'
    Users_dict = {'账号' : MyUID, '密码' : MyCODE}
    """
    '测试：打印一下'
    print(MyNAME)
    print(Users_dict)
    """
    #然后我要判断这个账户在库中是否存在，也就是我设定的字典里面有没有这个账号
    '先判断'
    if user_dict.get(MyNAME) == Users_dict:
        print("有你的UID",'2')

    #没有就添加一个
    #但是需要考虑到库的容量，我这里设库容量为3，我的方法是判断目前字典的长度是否不大于3，如果是，就可以存入字典
    else:
        if len(user_dict) >= 3:
            print('库已满','3')
        else:
            user_dict[MyNAME] = {'账号': MyUID, '密码': MyCODE}
            print('创建用户成功','1')
            print(user_dict[MyNAME])
def put_money():
    #接下来是存钱选项
    #这一步不用查询账户密码，但要查询是否有该用户

    Put_name = str(input('你叫什么名字：'))
    if Put_name in user_dict.keys():
        print('请稍等正在查询有没有你的信息')
        print('查询存在')
        Put_money = int(input('请问你要存多少钱：'))

        money_dict[Put_name] = money_dict[Put_name] + Put_money
        print("你已经存入",Put_money,'元钱')
    else:
        print('no you!')
def get_money():
    #来到取钱项目
    '再次判断库中有没有账户信息'
    Put_name = str(input('你叫什么名字：'))

    if Put_name in user_dict.keys():
        print('请稍等正在查询有没有你的信息')
        print('查询存在')
    #现在需要判断账号的id和密码是否都正确
        MyUID = int(input("请你输入自己的账号吧："))
        MyCODE = int(input("请你输入自己的密码吧："))

        '设置一个新字典让账号密码传进去'
        Users_dict = {'账号': MyUID, '密码': MyCODE}
        print(money_dict)
        if user_dict.get(Put_name) == Users_dict:
            print("核验成功", '3')
            Get_money = int(input('你要取多少钱：'))
            '判断取出的钱是否超出余额'
            if Get_money > money_dict[Put_name] :
                print('你的钱没有那么多')
            else:
                '开始取钱'
                New_money = int(money_dict[Put_name]) - Get_money
                money_dict.update(
                    {
                        Put_name : New_money
                    }
                )
                '打印一下余额'
                print('您的余额还有：',money_dict[Put_name])

        else:
            print('密码不正确','2')

    else:
        print('no you!','1')

#进入转账选项
def change_money():
    '再次判断库中有没有账户信息'
    Put_name = str(input('你叫什么名字：'))
    Put_Other_name = str(input('转出人叫什么名字：'))

    if Put_name in user_dict.keys() and Put_Other_name in user_dict.keys():
        print('请稍等正在查询有没有你们的信息')
        print('查询存在')
        # 现在需要判断账号的id和密码是否都正确
        MyUID = int(input("请你输入自己的账号吧："))
        MyCODE = int(input("请你输入自己的密码吧："))
        HerUID = int(input("请你输入转出人的账号吧："))
        HerCODE = int(input("请你输入转出人的密码吧："))
        '设置一个新字典让账号密码传进去'
        Users_dict = {'账号': MyUID, '密码': MyCODE}
        Other_Users_dict = {'账号': HerUID, '密码': HerCODE}
        if user_dict.get(Put_name) == Users_dict and user_dict.get(Put_Other_name) == Other_Users_dict:
            print("核验成功")
            change_money = int(input('你要转多少钱：'))
            if change_money > money_dict[Put_name]:
                print('你的钱没有那么多')
            else:
                New_money = money_dict[Put_name] - change_money
                Other_New_money = money_dict[Put_Other_name] + change_money
                money_dict.update(
                    {
                        Put_name: New_money,
                        Put_Other_name : Other_New_money
                    }
                )
                '打印一下余额'
                print('您的余额还有：', money_dict[Put_name])
                print('转出人的余额有:',money_dict[Put_Other_name])

        else:
            print('密码不正确', '2')

    else:
        print('no you','1')

#查询账户
def select_user():
    '再次判断库中有没有账户信息'
    Put_name = str(input('你叫什么名字：'))

    if Put_name in user_dict.keys():
        print('请稍等正在查询有没有你的信息')
        print('查询存在')
        # 现在需要判断账号的id和密码是否都正确
        MyUID = int(input("请你输入自己的账号吧："))
        MyCODE = int(input("请你输入自己的密码吧："))

        '设置一个新字典让账号密码传进去'
        Users_dict = {'账号': MyUID, '密码': MyCODE}
        if user_dict.get(Put_name) == Users_dict:
            print('密码正确')
            print(user_dict[Put_name])
            print(money_dict[Put_name])
            print(user_message_dict[Put_name])
        else:
            print('密码错误')
    else:
        print('不存在')
def farewell():
    print('再见，究极进化的钢铁暴龙加鲁鲁兽！')

#定义一个循环方法
def loop():

    dodoo = str(input('你还继续吗，继续输入y或者Y：'))
    if dodoo == 'y' or dodoo == 'Y':
        print('gogogo')
    else:
        farewell()
        exit()
# 然后我要让用户选择自己想要做的操作
while True:
    DOWHAT = int(input('请问你要做什么操作：'))
    if DOWHAT == 1:
        create_user()
        loop()
    elif DOWHAT == 2:
        put_money()
        loop()
    elif DOWHAT == 3:
        get_money()
        loop()
    elif DOWHAT == 4:
        change_money()
        loop()
    elif DOWHAT == 5:
        select_user()
        loop()
    elif DOWHAT == 6:
        farewell()
        exit()
    else:
        print('啥都不干')
